/*
枚举元组例1：https://www.luogu.com.cn/problem/B3621
要点：
•a 数组保存当前枚举情况，a[i] 记录第i个人是谁。
•当枚举完所有的人，就全部输出。
•dfs(pos) 负责枚举a[pos]。
*/
#include <bits/stdc++.h>
using namespace std;

int n, k;
int a[10];

void print_a()
{
    for (int i = 1; i <= n; i++)
    {
        cout << a[i] << " ";
    }
    cout << endl;
}

void dfs(int pos)
{
    if (pos == n + 1)
    {
        print_a();
        return;
    }
    for (int i = 1; i <= k; i++)
    {
        a[pos] = i;
        // 先不看递归调用，上面的逻辑比较简单，就是循环设置a[pos]，从1~k
        dfs(pos + 1);
    }
}

int main()
{
    cin >> n >> k;
    dfs(1);
    return 0;
}

/*
g++ dfs/dfs_1.cpp && echo 3 3 | ./a.out
*/